package com.moyu.user.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.moyu.user.domain.role.Role;
import com.moyu.user.domain.user.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Author 赵彦博
 * @Date 2024/11/19 11:02
 */
@Mapper
public interface UserMapper extends BaseMapper<User> {

    /**
     * 新增用户的角色
     *
     * @param id    用户ID
     * @param roles 角色列表
     */
    void insertRole(@Param("userId") Long id, @Param("roles") List<Role> roles);

    /**
     * 更新用户
     *
     * @param user 用户实例
     * @return 影响行数
     */
    int update(User user);

    /**
     * 删除用户
     *
     * @param id 用户ID
     * @return 影响行数
     */
    int delete(Long id);

    /**
     * 删除用户的角色
     *
     * @param id 用户ID
     */
    void deleteRole(@Param("userId") Long id);

    /**
     * 查询所有用户
     * @return 用户列表
     */
    List<User> list();

}
